{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-routing-default",
      "artifactVersion": "2023.25.10",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.routing.api",
          "org.nuxeo.ecm.platform.routing.core",
          "org.nuxeo.ecm.platform.routing.dashboard",
          "org.nuxeo.ecm.platform.routing.default",
          "org.nuxeo.ecm.platform.routing.default.jsf",
          "org.nuxeo.ecm.platform.routing.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing",
        "id": "grp:org.nuxeo.ecm.platform.routing",
        "name": "org.nuxeo.ecm.platform.routing",
        "parentIds": [
          "grp:org.nuxeo.ecm.routing"
        ],
        "readmes": [],
        "version": "2023.25"
      },
      "bundleId": "org.nuxeo.ecm.platform.routing.default",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.services.resource.ResourceService--resources",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--resources",
              "id": "studio.extensions.nuxeo-routing-default--resources",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.services.resource.ResourceService",
                "name": "org.nuxeo.runtime.services.resource.ResourceService",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.runtime.services.resource.ResourceService\">\n    <resource name=\"NRD-PR-TasksInfo\">data/templates/NRD-PR-TasksInfo</resource>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--event-handlers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--event-handlers",
              "id": "studio.extensions.nuxeo-routing-default--event-handlers",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"event-handlers\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <handler chainId=\"cancelWorkflow\">\n      <event>workflowCanceled</event>\n    </handler>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--chains",
              "id": "studio.extensions.nuxeo-routing-default--chains",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"NRD-AC-PR-ChooseParticipants-Output\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">NRD-AC-PR-LockDocument</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param name=\"name\" type=\"string\">initiatorComment</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"comment\"]</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-LockDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Auth.LoginAs\">\n        <param name=\"name\" type=\"string\">expr:workflowInitiator</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">expr:Document.isLocked()?\"voidChain\":\"Document.Lock\"</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-UnlockDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.Unlock\"/>\n    </chain>\n    <chain id=\"NRD-AC-PR-ValidateNode-Output\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">NRD-AC-PR-UnlockDocument</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">logInAudit</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-force-validate\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Auth.LoginAs\">\n        <param name=\"name\" type=\"string\">expr:Context[\"workflowInitiator\"]</param>\n      </operation>\n      <operation id=\"Audit.LogEvent\">\n        <param name=\"event\" type=\"string\">Consultation time excedeed</param>\n        <param name=\"category\" type=\"string\">Review workflow</param>\n        <param name=\"comment\" type=\"string\">Some consultation tasks were aborted by the system as they received no feedback message.</param>\n      </operation>\n      <operation id=\"Workflow.ResumeNode\"/>\n    </chain>\n    <chain id=\"NRD-AC-PR-storeTaskInfo\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunScript\">\n        <param name=\"script\" type=\"string\">This[0]</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">tasksInfo</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"tasks\"]</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">numberNA</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"NA\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">numberRejected</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"reject\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">numberApproved</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"approve\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">numberOfTasks</param>\n        <param name=\"value\" type=\"object\">expr:NodeVariables[\"numberOfTasks\"]</param>\n      </operation>\n      <operation id=\"Render.Document\">\n        <param name=\"template\" type=\"string\">template:NRD-PR-TasksInfo</param>\n        <param name=\"filename\" type=\"string\">output.ftl</param>\n        <param name=\"mimetype\" type=\"string\">text/xml</param>\n        <param name=\"type\" type=\"string\">ftl</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param name=\"name\" type=\"string\">review_result_file</param>\n        <param name=\"value\" type=\"object\">expr:This.get(0)</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param name=\"name\" type=\"string\">review_result</param>\n        <param name=\"value\" type=\"object\">expr:This.get(0).getString()</param>\n      </operation>\n    </chain>\n    <chain id=\"cancelWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">isParallelWF</param>\n        <param name=\"value\" type=\"object\">expr:Event.context.getProperty(\"wfName\").equals(\"wf.parallelDocumentReview.ParallelDocumentReview\")?true:false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">expr:isParallelWF?\"Document.Unlock\":\"voidChain\"</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"initInitiatorComment\">\n      <operation id=\"RunScript\">\n        <param name=\"script\" type=\"string\">if((NodeVariables[\"comment\"] != \"\") AND (NodeVariables[\"comment\"] != null)){\nWorkflowVariables[\"initiatorComment\"]= NodeVariables[\"comment\"];}</param>\n      </operation>\n    </chain>\n    <chain id=\"logInAudit\">\n      <operation id=\"Audit.LogEvent\">\n        <param name=\"event\" type=\"string\">expr:NodeVariables[\"button\"] ==\"reject\"?\"chain.document.refused\":\"chain.document.validated\"</param>\n        <param name=\"category\" type=\"string\">Review workflow</param>\n        <param name=\"comment\" type=\"string\">expr:@{nodeLastActor} @{NodeVariables[\"button\"] ==\"reject\"?\"chain.document.refused\":\"chain.document.validated\"} the document with the following comment: @{NodeVariables[\"comment\"]}</param>\n      </operation>\n    </chain>\n    <chain id=\"nextAssignee\">\n      <operation id=\"RunScript\">\n        <param name=\"script\" type=\"string\">if (NodeVariables[\"button\"] == \"validate\") {\n  WorkflowVariables[\"index\"] = WorkflowVariables[\"index\"] + 1;\n}\nelse if (NodeVariables[\"button\"] == \"reject\") {\n  WorkflowVariables[\"index\"] = WorkflowVariables[\"index\"] - 1;\n}\nelse if (NodeVariables[\"button\"] == \"submit\") {\n  WorkflowVariables[\"index\"] = 0;\n}</param>\n      </operation>\n    </chain>\n    <chain id=\"notifyInitiatorEndOfWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.Mail\">\n        <param name=\"from\" type=\"string\">expr:Env[\"mail.from\"]</param>\n        <param name=\"message\" type=\"string\">The document was approved by every participant.</param>\n        <param name=\"subject\" type=\"string\">expr:@{Env[\"nuxeo.notification.eMailSubjectPrefix\"]} Document approved</param>\n        <param name=\"to\" type=\"stringlist\">expr:Fn.getEmail(workflowInitiator)</param>\n        <param name=\"HTML\" type=\"boolean\">false</param>\n        <param name=\"rollbackOnError\" type=\"boolean\">true</param>\n        <param name=\"viewId\" type=\"string\">view_documents</param>\n      </operation>\n    </chain>\n    <chain id=\"reinitAssigneeComment\">\n      <operation id=\"RunScript\">\n        <param name=\"script\" type=\"string\">if((NodeVariables[\"comment\"] != \"\") AND (NodeVariables[\"comment\"] != null)){\nNodeVariables[\"comment\"]= null;}</param>\n      </operation>\n    </chain>\n    <chain id=\"terminateWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">logInAudit</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n      <operation id=\"Context.RunDocumentOperationInNewTx\">\n        <param name=\"id\" type=\"string\">notifyInitiatorEndOfWorkflow</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n        <param name=\"rollbackGlobalOnError\" type=\"boolean\">false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param name=\"id\" type=\"string\">expr:WorkflowVariables[\"validationOrReview\"] == \"validation\"?\"validateDocument\":\"voidChain\"</param>\n        <param name=\"isolate\" type=\"boolean\">false</param>\n      </operation>\n      <operation id=\"Audit.LogEvent\">\n        <param name=\"event\" type=\"string\">Review completed successfully</param>\n        <param name=\"category\" type=\"string\">Review workflow</param>\n        <param name=\"comment\" type=\"string\">All the participants of the review have approved the document.</param>\n      </operation>\n    </chain>\n    <chain id=\"validateDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.FollowLifecycleTransition\">\n        <param name=\"value\" type=\"string\">approve</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param name=\"version\" type=\"string\">minor</param>\n        <param name=\"comment\" type=\"string\">Automatic checkin after validation</param>\n      </operation>\n    </chain>\n    <chain id=\"voidChain\">\n      <operation id=\"Context.FetchDocument\"/>\n    </chain>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.GenericDirectory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--directories",
              "id": "studio.extensions.nuxeo-routing-default--directories",
              "registrationOrder": 15,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.GenericDirectory",
                "name": "org.nuxeo.ecm.directory.GenericDirectory",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.GenericDirectory\">\n    <directory extends=\"template-vocabulary\" name=\"WorkflowType\">\n      <autoincrementIdField>false</autoincrementIdField>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n      <table>studio_vocabulary_WorkflowType</table>\n      <dataFile>data/vocabularies/WorkflowType.csv</dataFile>\n      <cacheEntryName>vocab-WorkflowType-cache</cacheEntryName>\n      <cacheEntryWithoutReferencesName>vocab-WorkflowType-cache-without-references</cacheEntryWithoutReferencesName>\n    </directory>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.cache.CacheService--caches",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--caches",
              "id": "studio.extensions.nuxeo-routing-default--caches",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.cache.CacheService",
                "name": "org.nuxeo.ecm.core.cache.CacheService",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"caches\" target=\"org.nuxeo.ecm.core.cache.CacheService\">\n    <cache name=\"vocab-WorkflowType-cache\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">500</option>\n      <ttl>60</ttl>\n    </cache>\n    <cache name=\"vocab-WorkflowType-cache-without-references\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">500</option>\n      <ttl>60</ttl>\n    </cache>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--schema",
              "id": "studio.extensions.nuxeo-routing-default--schema",
              "registrationOrder": 47,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"var_global_Task2169\" override=\"true\" prefix=\"var_global_Task2169\" src=\"data/schemas/var_global_Task2169.xsd\"/>\n    <schema name=\"var_Task2169\" override=\"true\" prefix=\"var_Task2169\" src=\"data/schemas/var_Task2169.xsd\"/>\n    <schema name=\"var_Task21a0\" override=\"true\" prefix=\"var_Task21a0\" src=\"data/schemas/var_Task21a0.xsd\"/>\n    <schema name=\"var_Task2225\" override=\"true\" prefix=\"var_Task2225\" src=\"data/schemas/var_Task2225.xsd\"/>\n    <schema name=\"var_Task22b4\" override=\"true\" prefix=\"var_Task22b4\" src=\"data/schemas/var_Task22b4.xsd\"/>\n    <schema name=\"var_Task232e\" override=\"true\" prefix=\"var_Task232e\" src=\"data/schemas/var_Task232e.xsd\"/>\n    <schema name=\"var_global_Task2556\" override=\"true\" prefix=\"var_global_Task2556\" src=\"data/schemas/var_global_Task2556.xsd\"/>\n    <schema name=\"var_Task2556\" override=\"true\" prefix=\"var_Task2556\" src=\"data/schemas/var_Task2556.xsd\"/>\n    <schema name=\"var_global_Task328d\" override=\"true\" prefix=\"var_global_Task328d\" src=\"data/schemas/var_global_Task328d.xsd\"/>\n    <schema name=\"var_Task328d\" override=\"true\" prefix=\"var_Task328d\" src=\"data/schemas/var_Task328d.xsd\"/>\n    <schema name=\"var_ParallelDocumentReview\" override=\"true\" prefix=\"var_ParallelDocumentReview\" src=\"data/schemas/var_ParallelDocumentReview.xsd\"/>\n    <schema name=\"var_Task375f\" override=\"true\" prefix=\"var_Task375f\" src=\"data/schemas/var_Task375f.xsd\"/>\n    <schema name=\"var_global_Task38e\" override=\"true\" prefix=\"var_global_Task38e\" src=\"data/schemas/var_global_Task38e.xsd\"/>\n    <schema name=\"var_Task38e\" override=\"true\" prefix=\"var_Task38e\" src=\"data/schemas/var_Task38e.xsd\"/>\n    <schema name=\"var_Task542\" override=\"true\" prefix=\"var_Task542\" src=\"data/schemas/var_Task542.xsd\"/>\n    <schema name=\"var_Task5c1\" override=\"true\" prefix=\"var_Task5c1\" src=\"data/schemas/var_Task5c1.xsd\"/>\n    <schema name=\"var_global_Task6d8\" override=\"true\" prefix=\"var_global_Task6d8\" src=\"data/schemas/var_global_Task6d8.xsd\"/>\n    <schema name=\"var_Task6d8\" override=\"true\" prefix=\"var_Task6d8\" src=\"data/schemas/var_Task6d8.xsd\"/>\n    <schema name=\"var_SerialDocumentReview\" override=\"true\" prefix=\"var_SerialDocumentReview\" src=\"data/schemas/var_SerialDocumentReview.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--doctype",
              "id": "studio.extensions.nuxeo-routing-default--doctype",
              "registrationOrder": 45,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <facet name=\"facet-var_global_Task2169\">\n      <schema name=\"var_global_Task2169\"/>\n    </facet>\n    <facet name=\"facet-var_Task2169\">\n      <schema name=\"var_Task2169\"/>\n    </facet>\n    <facet name=\"facet-var_Task21a0\">\n      <schema name=\"var_Task21a0\"/>\n    </facet>\n    <facet name=\"facet-var_Task2225\">\n      <schema name=\"var_Task2225\"/>\n    </facet>\n    <facet name=\"facet-var_Task22b4\">\n      <schema name=\"var_Task22b4\"/>\n    </facet>\n    <facet name=\"facet-var_Task232e\">\n      <schema name=\"var_Task232e\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task2556\">\n      <schema name=\"var_global_Task2556\"/>\n    </facet>\n    <facet name=\"facet-var_Task2556\">\n      <schema name=\"var_Task2556\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task328d\">\n      <schema name=\"var_global_Task328d\"/>\n    </facet>\n    <facet name=\"facet-var_Task328d\">\n      <schema name=\"var_Task328d\"/>\n    </facet>\n    <facet name=\"facet-var_ParallelDocumentReview\">\n      <schema name=\"var_ParallelDocumentReview\"/>\n    </facet>\n    <facet name=\"facet-var_Task375f\">\n      <schema name=\"var_Task375f\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task38e\">\n      <schema name=\"var_global_Task38e\"/>\n    </facet>\n    <facet name=\"facet-var_Task38e\">\n      <schema name=\"var_Task38e\"/>\n    </facet>\n    <facet name=\"facet-var_Task542\">\n      <schema name=\"var_Task542\"/>\n    </facet>\n    <facet name=\"facet-var_Task5c1\">\n      <schema name=\"var_Task5c1\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task6d8\">\n      <schema name=\"var_global_Task6d8\"/>\n    </facet>\n    <facet name=\"facet-var_Task6d8\">\n      <schema name=\"var_Task6d8\"/>\n    </facet>\n    <facet name=\"facet-var_SerialDocumentReview\">\n      <schema name=\"var_SerialDocumentReview\"/>\n    </facet>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.routing.service--routeModelImporter",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--routeModelImporter",
              "id": "studio.extensions.nuxeo-routing-default--routeModelImporter",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.routing.service",
                "name": "org.nuxeo.ecm.platform.routing.service",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"routeModelImporter\" target=\"org.nuxeo.ecm.platform.routing.service\">\n    <template-resource id=\"ParallelDocumentReview\" path=\"data/ParallelDocumentReview.zip\"/>\n    <template-resource id=\"SerialDocumentReview\" path=\"data/SerialDocumentReview.zip\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default/Contributions/studio.extensions.nuxeo-routing-default--filters",
              "id": "studio.extensions.nuxeo-routing-default--filters",
              "registrationOrder": 31,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2023.25.10",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n    <filter id=\"filter@wf@ParallelDocumentReview\">\n      <rule grant=\"true\">\n        <permission>ReadWrite</permission>\n        <type>Audio</type>\n        <type>File</type>\n        <type>Note</type>\n        <type>Picture</type>\n        <type>Video</type>\n        <condition>#{!currentDocument.locked and currentDocument.currentLifeCycleState != 'approved' and !currentDocument.trashed}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <condition>document.isImmutable()</condition>\n      </rule>\n    </filter>\n    <filter id=\"filter@SerialDocumentReview\">\n      <rule grant=\"true\">\n        <permission>ReadWrite</permission>\n        <type>Audio</type>\n        <type>File</type>\n        <type>Note</type>\n        <type>Picture</type>\n        <type>Video</type>\n        <condition>#{currentDocument.currentLifeCycleState != 'approved' and !currentDocument.trashed}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <condition>document.isImmutable()</condition>\n      </rule>\n    </filter>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default/studio.extensions.nuxeo-routing-default",
          "name": "studio.extensions.nuxeo-routing-default",
          "requirements": [],
          "resolutionOrder": 766,
          "services": [],
          "startOrder": 764,
          "version": "2023.25.10",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<component name=\"studio.extensions.nuxeo-routing-default\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.runtime.services.resource.ResourceService\" point=\"resources\">\n    <resource name=\"NRD-PR-TasksInfo\">data/templates/NRD-PR-TasksInfo</resource>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"event-handlers\">\n    <handler chainId=\"cancelWorkflow\">\n      <event>workflowCanceled</event>\n    </handler>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"chains\">\n    <chain id=\"NRD-AC-PR-ChooseParticipants-Output\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">NRD-AC-PR-LockDocument</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param type=\"string\" name=\"name\">initiatorComment</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"comment\"]</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-LockDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Auth.LoginAs\">\n        <param type=\"string\" name=\"name\">expr:workflowInitiator</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">expr:Document.isLocked()?\"voidChain\":\"Document.Lock\"</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-UnlockDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.Unlock\"/>\n    </chain>\n    <chain id=\"NRD-AC-PR-ValidateNode-Output\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">NRD-AC-PR-UnlockDocument</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">logInAudit</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"NRD-AC-PR-force-validate\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Auth.LoginAs\">\n        <param type=\"string\" name=\"name\">expr:Context[\"workflowInitiator\"]</param>\n      </operation>\n      <operation id=\"Audit.LogEvent\">\n        <param type=\"string\" name=\"event\">Consultation time excedeed</param>\n        <param type=\"string\" name=\"category\">Review workflow</param>\n        <param type=\"string\" name=\"comment\">Some consultation tasks were aborted by the system as they received no feedback message.</param>\n      </operation>\n      <operation id=\"Workflow.ResumeNode\"/>\n    </chain>\n    <chain id=\"NRD-AC-PR-storeTaskInfo\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunScript\">\n        <param type=\"string\" name=\"script\">This[0]</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">tasksInfo</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"tasks\"]</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">numberNA</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"NA\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">numberRejected</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"reject\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">numberApproved</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"tasks\"].getNumberEndedWithStatus(\"approve\")</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">numberOfTasks</param>\n        <param type=\"object\" name=\"value\">expr:NodeVariables[\"numberOfTasks\"]</param>\n      </operation>\n      <operation id=\"Render.Document\">\n        <param type=\"string\" name=\"template\">template:NRD-PR-TasksInfo</param>\n        <param type=\"string\" name=\"filename\">output.ftl</param>\n        <param type=\"string\" name=\"mimetype\">text/xml</param>\n        <param type=\"string\" name=\"type\">ftl</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param type=\"string\" name=\"name\">review_result_file</param>\n        <param type=\"object\" name=\"value\">expr:This.get(0)</param>\n      </operation>\n      <operation id=\"Context.SetWorkflowVar\">\n        <param type=\"string\" name=\"name\">review_result</param>\n        <param type=\"object\" name=\"value\">expr:This.get(0).getString()</param>\n      </operation>\n    </chain>\n    <chain id=\"cancelWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">isParallelWF</param>\n        <param type=\"object\" name=\"value\">expr:Event.context.getProperty(\"wfName\").equals(\"wf.parallelDocumentReview.ParallelDocumentReview\")?true:false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">expr:isParallelWF?\"Document.Unlock\":\"voidChain\"</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"initInitiatorComment\">\n      <operation id=\"RunScript\">\n        <param type=\"string\" name=\"script\">if((NodeVariables[\"comment\"] != \"\") AND (NodeVariables[\"comment\"] != null)){\nWorkflowVariables[\"initiatorComment\"]= NodeVariables[\"comment\"];}</param>\n      </operation>\n    </chain>\n    <chain id=\"logInAudit\">\n      <operation id=\"Audit.LogEvent\">\n        <param type=\"string\" name=\"event\">expr:NodeVariables[\"button\"] ==\"reject\"?\"chain.document.refused\":\"chain.document.validated\"</param>\n        <param type=\"string\" name=\"category\">Review workflow</param>\n        <param type=\"string\" name=\"comment\">expr:@{nodeLastActor} @{NodeVariables[\"button\"] ==\"reject\"?\"chain.document.refused\":\"chain.document.validated\"} the document with the following comment: @{NodeVariables[\"comment\"]}</param>\n      </operation>\n    </chain>\n    <chain id=\"nextAssignee\">\n      <operation id=\"RunScript\">\n        <param type=\"string\" name=\"script\">if (NodeVariables[\"button\"] == \"validate\") {\n  WorkflowVariables[\"index\"] = WorkflowVariables[\"index\"] + 1;\n}\nelse if (NodeVariables[\"button\"] == \"reject\") {\n  WorkflowVariables[\"index\"] = WorkflowVariables[\"index\"] - 1;\n}\nelse if (NodeVariables[\"button\"] == \"submit\") {\n  WorkflowVariables[\"index\"] = 0;\n}</param>\n      </operation>\n    </chain>\n    <chain id=\"notifyInitiatorEndOfWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.Mail\">\n        <param type=\"string\" name=\"from\">expr:Env[\"mail.from\"]</param>\n        <param type=\"string\" name=\"message\">The document was approved by every participant.</param>\n        <param type=\"string\" name=\"subject\">expr:@{Env[\"nuxeo.notification.eMailSubjectPrefix\"]} Document approved</param>\n        <param type=\"stringlist\" name=\"to\">expr:Fn.getEmail(workflowInitiator)</param>\n        <param type=\"boolean\" name=\"HTML\">false</param>\n        <param type=\"boolean\" name=\"rollbackOnError\">true</param>\n        <param type=\"string\" name=\"viewId\">view_documents</param>\n      </operation>\n    </chain>\n    <chain id=\"reinitAssigneeComment\">\n      <operation id=\"RunScript\">\n        <param type=\"string\" name=\"script\">if((NodeVariables[\"comment\"] != \"\") AND (NodeVariables[\"comment\"] != null)){\nNodeVariables[\"comment\"]= null;}</param>\n      </operation>\n    </chain>\n    <chain id=\"terminateWorkflow\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">logInAudit</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n      <operation id=\"Context.RunDocumentOperationInNewTx\">\n        <param type=\"string\" name=\"id\">notifyInitiatorEndOfWorkflow</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n        <param type=\"boolean\" name=\"rollbackGlobalOnError\">false</param>\n      </operation>\n      <operation id=\"RunOperation\">\n        <param type=\"string\" name=\"id\">expr:WorkflowVariables[\"validationOrReview\"] == \"validation\"?\"validateDocument\":\"voidChain\"</param>\n        <param type=\"boolean\" name=\"isolate\">false</param>\n      </operation>\n      <operation id=\"Audit.LogEvent\">\n        <param type=\"string\" name=\"event\">Review completed successfully</param>\n        <param type=\"string\" name=\"category\">Review workflow</param>\n        <param type=\"string\" name=\"comment\">All the participants of the review have approved the document.</param>\n      </operation>\n    </chain>\n    <chain id=\"validateDocument\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.FollowLifecycleTransition\">\n        <param type=\"string\" name=\"value\">approve</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param type=\"string\" name=\"version\">minor</param>\n        <param type=\"string\" name=\"comment\">Automatic checkin after validation</param>\n      </operation>\n    </chain>\n    <chain id=\"voidChain\">\n      <operation id=\"Context.FetchDocument\"/>\n    </chain>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.directory.GenericDirectory\" point=\"directories\">\n    <directory name=\"WorkflowType\" extends=\"template-vocabulary\">\n      <autoincrementIdField>false</autoincrementIdField>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n      <table>studio_vocabulary_WorkflowType</table>\n      <dataFile>data/vocabularies/WorkflowType.csv</dataFile>\n      <cacheEntryName>vocab-WorkflowType-cache</cacheEntryName>\n      <cacheEntryWithoutReferencesName>vocab-WorkflowType-cache-without-references</cacheEntryWithoutReferencesName>\n    </directory>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.cache.CacheService\" point=\"caches\">\n    <cache name=\"vocab-WorkflowType-cache\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">500</option>\n      <ttl>60</ttl>\n    </cache>\n    <cache name=\"vocab-WorkflowType-cache-without-references\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">500</option>\n      <ttl>60</ttl>\n    </cache>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"var_global_Task2169\" prefix=\"var_global_Task2169\" override=\"true\" src=\"data/schemas/var_global_Task2169.xsd\"/>\n    <schema name=\"var_Task2169\" prefix=\"var_Task2169\" override=\"true\" src=\"data/schemas/var_Task2169.xsd\"/>\n    <schema name=\"var_Task21a0\" prefix=\"var_Task21a0\" override=\"true\" src=\"data/schemas/var_Task21a0.xsd\"/>\n    <schema name=\"var_Task2225\" prefix=\"var_Task2225\" override=\"true\" src=\"data/schemas/var_Task2225.xsd\"/>\n    <schema name=\"var_Task22b4\" prefix=\"var_Task22b4\" override=\"true\" src=\"data/schemas/var_Task22b4.xsd\"/>\n    <schema name=\"var_Task232e\" prefix=\"var_Task232e\" override=\"true\" src=\"data/schemas/var_Task232e.xsd\"/>\n    <schema name=\"var_global_Task2556\" prefix=\"var_global_Task2556\" override=\"true\" src=\"data/schemas/var_global_Task2556.xsd\"/>\n    <schema name=\"var_Task2556\" prefix=\"var_Task2556\" override=\"true\" src=\"data/schemas/var_Task2556.xsd\"/>\n    <schema name=\"var_global_Task328d\" prefix=\"var_global_Task328d\" override=\"true\" src=\"data/schemas/var_global_Task328d.xsd\"/>\n    <schema name=\"var_Task328d\" prefix=\"var_Task328d\" override=\"true\" src=\"data/schemas/var_Task328d.xsd\"/>\n    <schema name=\"var_ParallelDocumentReview\" prefix=\"var_ParallelDocumentReview\" override=\"true\" src=\"data/schemas/var_ParallelDocumentReview.xsd\"/>\n    <schema name=\"var_Task375f\" prefix=\"var_Task375f\" override=\"true\" src=\"data/schemas/var_Task375f.xsd\"/>\n    <schema name=\"var_global_Task38e\" prefix=\"var_global_Task38e\" override=\"true\" src=\"data/schemas/var_global_Task38e.xsd\"/>\n    <schema name=\"var_Task38e\" prefix=\"var_Task38e\" override=\"true\" src=\"data/schemas/var_Task38e.xsd\"/>\n    <schema name=\"var_Task542\" prefix=\"var_Task542\" override=\"true\" src=\"data/schemas/var_Task542.xsd\"/>\n    <schema name=\"var_Task5c1\" prefix=\"var_Task5c1\" override=\"true\" src=\"data/schemas/var_Task5c1.xsd\"/>\n    <schema name=\"var_global_Task6d8\" prefix=\"var_global_Task6d8\" override=\"true\" src=\"data/schemas/var_global_Task6d8.xsd\"/>\n    <schema name=\"var_Task6d8\" prefix=\"var_Task6d8\" override=\"true\" src=\"data/schemas/var_Task6d8.xsd\"/>\n    <schema name=\"var_SerialDocumentReview\" prefix=\"var_SerialDocumentReview\" override=\"true\" src=\"data/schemas/var_SerialDocumentReview.xsd\"/>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n    <facet name=\"facet-var_global_Task2169\">\n      <schema name=\"var_global_Task2169\"/>\n    </facet>\n    <facet name=\"facet-var_Task2169\">\n      <schema name=\"var_Task2169\"/>\n    </facet>\n    <facet name=\"facet-var_Task21a0\">\n      <schema name=\"var_Task21a0\"/>\n    </facet>\n    <facet name=\"facet-var_Task2225\">\n      <schema name=\"var_Task2225\"/>\n    </facet>\n    <facet name=\"facet-var_Task22b4\">\n      <schema name=\"var_Task22b4\"/>\n    </facet>\n    <facet name=\"facet-var_Task232e\">\n      <schema name=\"var_Task232e\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task2556\">\n      <schema name=\"var_global_Task2556\"/>\n    </facet>\n    <facet name=\"facet-var_Task2556\">\n      <schema name=\"var_Task2556\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task328d\">\n      <schema name=\"var_global_Task328d\"/>\n    </facet>\n    <facet name=\"facet-var_Task328d\">\n      <schema name=\"var_Task328d\"/>\n    </facet>\n    <facet name=\"facet-var_ParallelDocumentReview\">\n      <schema name=\"var_ParallelDocumentReview\"/>\n    </facet>\n    <facet name=\"facet-var_Task375f\">\n      <schema name=\"var_Task375f\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task38e\">\n      <schema name=\"var_global_Task38e\"/>\n    </facet>\n    <facet name=\"facet-var_Task38e\">\n      <schema name=\"var_Task38e\"/>\n    </facet>\n    <facet name=\"facet-var_Task542\">\n      <schema name=\"var_Task542\"/>\n    </facet>\n    <facet name=\"facet-var_Task5c1\">\n      <schema name=\"var_Task5c1\"/>\n    </facet>\n    <facet name=\"facet-var_global_Task6d8\">\n      <schema name=\"var_global_Task6d8\"/>\n    </facet>\n    <facet name=\"facet-var_Task6d8\">\n      <schema name=\"var_Task6d8\"/>\n    </facet>\n    <facet name=\"facet-var_SerialDocumentReview\">\n      <schema name=\"var_SerialDocumentReview\"/>\n    </facet>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.routing.service\" point=\"routeModelImporter\">\n    <template-resource id=\"ParallelDocumentReview\" path=\"data/ParallelDocumentReview.zip\"/>\n    <template-resource id=\"SerialDocumentReview\" path=\"data/SerialDocumentReview.zip\"/>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\" point=\"filters\">\n    <filter id=\"filter@wf@ParallelDocumentReview\">\n      <rule grant=\"true\">\n        <permission>ReadWrite</permission>\n        <type>Audio</type>\n        <type>File</type>\n        <type>Note</type>\n        <type>Picture</type>\n        <type>Video</type>\n        <condition>#{!currentDocument.locked and currentDocument.currentLifeCycleState != 'approved' and !currentDocument.trashed}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <condition>document.isImmutable()</condition>\n      </rule>\n    </filter>\n    <filter id=\"filter@SerialDocumentReview\">\n      <rule grant=\"true\">\n        <permission>ReadWrite</permission>\n        <type>Audio</type>\n        <type>File</type>\n        <type>Note</type>\n        <type>Picture</type>\n        <type>Video</type>\n        <condition>#{currentDocument.currentLifeCycleState != 'approved' and !currentDocument.trashed}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <condition>document.isImmutable()</condition>\n      </rule>\n    </filter>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/extensions.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-routing-default-2023.25.10.jar",
      "groupId": "org.nuxeo.ecm.routing",
      "hierarchyPath": "/grp:org.nuxeo.ecm.routing/grp:org.nuxeo.ecm.platform.routing/org.nuxeo.ecm.platform.routing.default",
      "id": "org.nuxeo.ecm.platform.routing.default",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.13\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo ECM Routing Default Workflows\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.routing.default;singleton=tr\r\n ue\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/extensions.xml\r\n\r\n",
      "maxResolutionOrder": 766,
      "minResolutionOrder": 766,
      "packages": [],
      "readme": {
        "blobProviderId": "default",
        "content": "Nuxeo Routing Default\n=====================\n\nThis module defines the default workflow for Nuxeo.\n\n## Information for Nuxeo developers\n\nThis module is adapted from the definition built from the Studio project named `nuxeo-routing-default`.\n\n## Requirements\n\nYou need xmllint installed.\nOn Mac OS X (Yosemite), it is installed by default.\nOn Ubuntu, if it is not already installed, you can run apt-get install libxml2-utils\n\n## Update\n\nChanges in this module should be done in the Studio project to ensure\naccurate synchronization of changes between the Studio project and\nthis code.\n\nHere is the procedure to follow when making changes to files generated\nby Studio:\n\n- make changes in the Studio project, and commit with an accurate\n  description of the changes (references to JIRA issues are very welcome),\n- download the generated jar and unzip it in a temp folder,\n- from this directory, run:\n\n        $ ./etc/update.sh  temp-folder-where-jar-was-unzipped/\n\nIf you need more changes to the generated jar, you should update the\nscript at `etc/update.sh`.\n",
        "digest": "af71d59e8c46125d86ffd22d4ad40bf2",
        "encoding": "UTF-8",
        "length": 1056,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "2023.25.10"
    }
  ],
  "creationDate": 1738062879135,
  "key": "Nuxeo Platform-2023.25",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-ChooseParticipants-Output",
      "label": "NRD-AC-PR-ChooseParticipants-Output",
      "name": "NRD-AC-PR-ChooseParticipants-Output",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "NRD-AC-PR-ChooseParticipants-Output",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-LockDocument",
      "label": "NRD-AC-PR-LockDocument",
      "name": "NRD-AC-PR-LockDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "NRD-AC-PR-LockDocument",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-UnlockDocument",
      "label": "NRD-AC-PR-UnlockDocument",
      "name": "NRD-AC-PR-UnlockDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "NRD-AC-PR-UnlockDocument",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-ValidateNode-Output",
      "label": "NRD-AC-PR-ValidateNode-Output",
      "name": "NRD-AC-PR-ValidateNode-Output",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "NRD-AC-PR-ValidateNode-Output",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-force-validate",
      "label": "NRD-AC-PR-force-validate",
      "name": "NRD-AC-PR-force-validate",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "NRD-AC-PR-force-validate",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:NRD-AC-PR-storeTaskInfo",
      "label": "NRD-AC-PR-storeTaskInfo",
      "name": "NRD-AC-PR-storeTaskInfo",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "blob",
        "documents",
        "bloblist"
      ],
      "url": "NRD-AC-PR-storeTaskInfo",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:cancelWorkflow",
      "label": "cancelWorkflow",
      "name": "cancelWorkflow",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "cancelWorkflow",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:initInitiatorComment",
      "label": "initInitiatorComment",
      "name": "initInitiatorComment",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "initInitiatorComment",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:logInAudit",
      "label": "logInAudit",
      "name": "logInAudit",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "logInAudit",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:nextAssignee",
      "label": "nextAssignee",
      "name": "nextAssignee",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "nextAssignee",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:notifyInitiatorEndOfWorkflow",
      "label": "notifyInitiatorEndOfWorkflow",
      "name": "notifyInitiatorEndOfWorkflow",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "notifyInitiatorEndOfWorkflow",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:reinitAssigneeComment",
      "label": "reinitAssigneeComment",
      "name": "reinitAssigneeComment",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "reinitAssigneeComment",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:terminateWorkflow",
      "label": "terminateWorkflow",
      "name": "terminateWorkflow",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "terminateWorkflow",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:validateDocument",
      "label": "validateDocument",
      "name": "validateDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "validateDocument",
      "version": "2023.25.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "studio.extensions.nuxeo-routing-default",
      "hierarchyPath": "/op:voidChain",
      "label": "voidChain",
      "name": "voidChain",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "voidChain",
      "version": "2023.25.10"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1738062879135,
  "version": "2023.25"
}